/**
 * 业务模块配置工具
 * 统一为所有业务模块配置通用属性
 */

/**
 * 为业务模块配置通用属性
 * @param {object} context 主云对象上下文
 * @param {array} modules 需要配置的模块列表
 */
function configureModules(context, modules) {
	const commonConfig = {
		language: context.language,
		t: context.t,
		uniIdCommon: context.uniIdCommon,
		getUniIdToken: context.getUniIdToken.bind(context),
		clientPlatform: context.clientPlatform
	}
	
	modules.forEach(module => {
		if (module && typeof module === 'object') {
			Object.assign(module, commonConfig)
		}
	})
}

/**
 * 为单个模块配置通用属性
 * @param {object} context 主云对象上下文
 * @param {object} module 需要配置的模块
 */
function configureModule(context, module) {
	if (module && typeof module === 'object') {
		module.language = context.language
		module.t = context.t
		module.uniIdCommon = context.uniIdCommon
		module.getUniIdToken = context.getUniIdToken.bind(context)
		module.clientPlatform = context.clientPlatform
	}
}

module.exports = {
	configureModules,
	configureModule
}
